DIMENSION4 trace messages
                                        
                                        
                                        This section lists the trace messages that might be logged by a DIMENSION4 system, organized as follows: 
                                        
                                        Message format 
                                        The format of every message is shown, using the following conventions: 
                                        
                                            - Constant strings printed in the message are shown as fixed font
 
                                            - Variables, filled in with some value, are shown as italic (in the health section, they are also underlined). 
 
                                        
                                        For example, the format of one of the sensor_init messages is shown as: 
                                        sensor_init: Components OK, will request config from address (our protocol address is address ) 
                                        And in the log itself this might correspond to a displayed message like this: 
                                        sensor_init: Components OK, will request config from 10.1.2.4 (our protocol address is 10.1.2.26) 
                                        Traces enabled by default 
                                        From DIMENSION4 version 1.0.2 commonly-required traces are enabled by default, so that no extra user configuration (of the platform_monitor parameter) is required.  If these traces are explicitly enabled, no harm will be done, but the configuration step is no longer required. 
                                        The ‘sensor_health’ trace message 
                                        ARM section 
                                        The ARM section contains health information about the sensor control system, sensor-sensor and sensor-server protocols.  It has several counters that show activity since the previous health report.  These can be used to understand the size of data flows in the system (e.g. bandwidth to server, tag bandwidth at the sensor, sensor to sensor communications).  It also includes more advanced performance data that may be useful if analyzing a subsequent sensor error, but is not valuable for normal field analysis. 
                                        This message is sent once a minute.
                                        The health message is broken down as follows: 
ARM  
                                        Health data from the sensor CPU (ARM).
|RECV s_arrays/scans/valid/meas/late ScanArrays/Scans/ValidScans/Measurements/Late  
                                        The RECV section gives details about individual measurements the ARM has received over the network or from the digital signal processor (DSP). 
                                        ScanArrays: the DSP sends measurements to the ARM in bulk messages called ScanArrays. This value is the number of messages the ARM has received from the DSP. 
                                        Scans: the number of measurements the ARM has received from the DSP. For example, if there are four measurements per full ScanArray and the ARM has received six half-full ScanArrays, then the ARM has received twelve measurements. 
                                        Valid Scans: the number of measurements which had a valid scan. Approximately half the measurements will not have been scanned because the sensor has a high-resolution decoder which can perform accurate scans to get fine TDOA data and angle data, and a low-resolution decoder which does not. The measurements from the low-resolution decoder are currently not used. 
                                        Measurements: the number of measurements received from the network. 
                                        Late: the number of measurements (local or received via the network) that were too late to be included in processing for that beacon. 
|SENT rem_meas/fltr_sets/fltr_meas Measurements/FilterInputSets/FilterMeasurements  
                                        This SENT section gives details about what the ARM has sent over the network or to the DSP. 
                                        Measurements: the number of measurements the ARM has sent to other sensors over the network. 
                                        FilterInputSets: the ARM sends measurements to the DSP to be filtered in sets, with each set containing all the measurements gathered for a particular tag beacon event. This value is the number of sets sent to the DSP. 
                                        FilterMeasurements: the total number of measurements sent to the DSP to be filtered. For example, if every tag is seen by exactly five sensors, this value should be equal to FilterInputSets multiplied by five. 
|FILTER lp_sets/res/seq/drpd_sets SetsDroppedLowPower/FilterResults/FilterSequenceHints/DiscardedFilterSets  
                                        The FILTER section describes the data flows in/out of the filter (from the ARM’s perspective). This is for tags where this sensor is acting as the ‘master’. 
                                        SetsDroppedLowPower: the number of sets of messages which were dropped due to power thresholding. 
                                        FilterResults: the number of filter results received by the ARM. 
                                        FilterSequenceHints: the number of messages which tells the ARM which filter sets have been filtered. 
                                        DiscardedFilterSets: the number of filter sets which have been discarded (for example, if the filter queue is too big). 
|SENT loc_v2/loc_v3 SentLocationMessagesV2/SentLocationMessagesV3  
                                        This SENT section shows counts of data messages sent to the server. 
                                        SentLocationMessagesV2: the number of location messages sent to the location cell manager. 
                                        SentLocationMessagesV3: the number of location messages (these include the measurement data) sent to the logging server. 
|FAILED meas/loc_v2/loc_v3 SendMeasurementFailures/SendV2Failures/SendV3Failures  
                                        The FAILED section shows counts of low-level network send failures. 
                                        SendMeasurementFailures: the number of measurements sent to other sensors which failed to send. 
                                        SendV2Failures: the number of location messages sent to the location cell manager which failed to send. 
                                        SendV3Failures: the number of location messages sent to the logging server which failed to send. 
|STATE alloc_meas/fq_sets/fq_meas AllocatedMeasurements/FilterQueueSets/FilterQueueMeasurements  
                                        The STATE section shows the current state of various buffers. 
                                        AllocatedMeasurements: the number of measurements currently allocated. 
                                        FilterQueueSets: the number of filter sets which have been sent to the DSP to be filtered for which the ARM is still waiting for a filter result. 
                                        FilterQueueMeasurements: the number of measurements in the queued filter sets. 
|HWM AllocatedMeasurements/FilterQueueSets/FilterQueueMeasurements  
                                        The HWM section lists high-water-marks (i.e. the highest value seen since the last message) for the values in the STATE message (see above). 
|MSGQALLOC: for each channel i with alloc errors: #i: AllocErrors[i]
(if there are no errors) (no errors) 
                                        The MSGQALLOC section gives the total number of errors encountered whilst allocating messages to communicate with the DSP. For each message type, this section gives the number of allocation errors (if a message type has no errors then it is omitted). If there have been no errors then this section has the text “(no errors)”. 
MEM HWM/RSS Memory HWM/MemoryResidentSetSize 
or if not able to retrieve memory monitor statistics: (get use err)  
                                        The MEM section gives information on the ARM’s memory usage. If unable to retrieve the usage statistics this section prints an error message. 
                                        HWM: the high-water-mark for the memory used by the ARM application. 
                                        MemoryResidentSetSize: the current memory used by the ARM application. 
| LOOP free/sent/loop_errs/lb_errs SlotsFree/SlotsSent/LoopErrors/LoopBufferErrors
                                        The LOOP section shows the current state of the message loop between the ARM and DSP. The message loop is used to send some messages to/from the DSP. If there are no slots free, then this will cause problems. 
                                        SlotsFree: the current number of slots in the message loop which are free (to be allocated). 
                                        SlotsSent: the current number of slots in the message loop which have been sent to the DSP. 
                                        LoopErrors: the number of errors in the message loop.
                                        LoopBufferErrors: the number of errors in the message loop buffer. 
                                        DSP section
                                        The DSP section contains information about the digital signal processor (DSP) and the underlying hardware. In general the data is for advanced analysis only.  However the ‘HEALTH load:’ percentage will give an idea of the remaining processing capacity, and the TS section will give an idea of the performance of the timing subsystem. 
                                        This message is sent once a minute.
| DSP 
                                        Health data from the DSP. 
|TASKS for each task: TaskNameActivityCount
                                        The TASKS section shows the number of times each task has run. This can be useful to debug unusual situations. 
| UPP for each stage in the data pipeline: StageCount  
                                        The UPP section shows the message counts for each stage in the data pipeline from the receiver through to sending the measurement to the ARM. 
| FILTER for each stage in the filter pipeline: StageCount
                                        The FILTER section shows the message counts for each stage in the filter pipeline. 
| MSGALLOC: for each channel i with alloc errors: #i: AllocErrors[i] 
(if there are no errors) (no errors) 
                                        The MSGALLOC section gives the total number of errors encountered whilst allocating messages to communicate with the DSP. For each message type, this section gives the number of allocation errors (if a message type has no errors then it is omitted). If there have been no errors then this section has the text “(no errors)”. 
| HEALTH load: DSPProcessorLoad % 
                                        The HEALTH section shows the current load on the DSP in percent. 
LOOP free/sent MessageQueueLoopSlotsFree/MessageQueueLoopSlotsSent
                                        The LOOP section shows the current state of the message loop between the DSP and ARM. The message loop is used to send some messages to/from the ARM. If there are no slots free, then this will cause problems. 
                                        MessageQueueLoopSlotsFree: the current number of slots in the message loop which are free (to be allocated). 
                                        MessageQueueLoopSlotsSent: the current number of slots in the message loop which have been sent to the ARM. 
MEM used/size/blkfree  MemoryUsed/MemorySize/LargestFreeBlock
                                        The MEM section shows the current state of the DSP’s memory. 
| DRIFT ClockDriftMicroseconds
                                        The DRIFT section shows the accumulated clock drift in microseconds. 
| TS ok/sht/lng NormalTimeslotCount/ShortTimeslotCount/LongTimeslotCount
                                        The TS section shows statistics about the timing subsystem. If ShortTimeslotCount or LongTimeslotCount are increasing, this may indicate a problem. 
| CFAR min-max threshold/raw/stripped/real w1-w2/x1-x2/y1-y2/z1-z2
                                         The CFAR section shows the minimum and maximum CFAR values since the last DSP health message for four ranges of values: CFAR threshold w1-w2, raw bits x1-x2, stripped bits y1-y2, and real bits z1-z2.
| RADIO installed
| RADIO absent
                                        If the trace contains the   | RADIO installed section then the sensor has a working radio; if the trace has the | RADIO absent section then no radio is installed.
                                        
                                            Additional Periodic DSP health information
                                        An additional message is sent out once every three minutes with DSP health information: 
|TEMP nrDAC/nrRX TempNearDAC/TempNearReceiver
                                        TempNearDAC: temperature near the DAC in Celsius 
                                        TempNearReceiver: temperature near the receiver in Celsius 
|DSP|glbl_stack GlobalStackBytesUsed
                                        GlobalStackBytesUsed: number of bytes used in the global stack 
|<Task> mode/sp/used/handle TaskMode/TaskStackPtr/TaskUsedStackBytes/TaskHandleAddr
                                        For each task: 
                                        TaskMode: the current mode of the task 
                                        TaskStackPtr: the stack pointer address 
                                        TaskUsedStackBytes: the number of bytes used in the task’s stack 
                                        TaskHandleAddr: the address of the task handle 
|PPM cnt/no_f/no_l/insuf PacketCount/NoPulsesFirstPart/NoPulsesLastPart/NotEnoughPulses
                                        PacketCount: the count of packets considered 
                                        NoPulsesFirstPart: the count of packets with no pulse in the first part of the packet 
                                        NoPulsesLastPart: the count of packets with no pulse in the last part of the packet 
                                        NotEnoughPulses: the count of packets with not enough pulses 
|CABLE unsync/ok/1/>1 UnsyncedBits/ErrorFreeBytes/SingleErrorBytes/MultipleErrorBytes
                                        UnsyncedBits: (unused) 
                                        ErrorFreeBytes: bytes which were error free 
                                        SingleErrorBytes: bytes which had a single bit error 
                                        MultipleErrorBytes: bytes which had multiple bit errors 
|LOOP_ERRORS buf/loop TotalLoopBufferErrors/TotalLoopErrors
                                        TotalLoopBufferErrors: the number of errors in the message loop buffer. 
                                        TotalLoopErrors: the number of errors in the message loop. 
                                        Location system information messages enabled by default 
                                        Trace option ‘boot’ 
                                        This option traces operation of the boot server.  The message formats are: 
                                        boot: Boot configuration server listening on address
                                        boot: Boot configuration server setting intended versions for kernel/filesystem/firmware to KernelVersion/FSVersion/FirmwareVersion
                                        boot: Sensor mac requested configuration (v ProtocolVersion) at address, returning INVALID (server in test mode) 
                                        boot: Sensor mac requested configuration (v ProtocolVersion) at address, returning OK, kernel: KernelVersion/KernelLength/KernelCRC, fs: FSVersion/FSLength/FSCRC, firmware: FirmwareVersion/FirmwareLength/FirmwareCRC, nextaddr: BootServerAddress
                                        boot: Sensor mac requested configuration (v ProtocolVersion) at address, returning OK/kernel_KernelVersion/fs_FSVersion/addr/kcrc_KernelCRC/fcrc_FSCRC
                                        boot: Sensor mac requested filename at address  
                                        boot: Sensor mac completed request for filename at address
                                        Trace option ‘ls_sink_info’ 
                                        This option traces location sink configuration. It can be used to check for whether the persistent or nonpersistent sensor status storage is enabled. The message formats are: 
                                        ls_sink_info: Location sink for cell cell not storing status persistently. 
                                        ls_sink_info: Location sink for cell cell storing status persistently. 
                                        Trace option ‘ls_sink_stats’ 
                                        This option traces the messages received by the location sink server.  It prints a single trace format that can contain counts for different protocol messages: 
                                        ls_sink_stats: cell_ received message_counts
                                        Trace option ‘ls_sink_time’ 
                                        This option traces the time synchronization protocol that is controlled by the location sink.  It has a single message format: 
                                        ls_sink_time: TIME SYNC SERVER: client time = tsm.client_time_ ( tsm.client_time_.seconds() s tsm.client_time_.remainder_nanoseconds() ns) server = tsm.server_time_ ( tsm.server_time_.seconds() s tsm.server_time_.remainder_nanoseconds() ns) send to address 
                                        Trace option ‘logging_server_stats’ 
                                        This option traces the messages received by the logging server (excluding trace messages).  It prints a single trace format that can contain counts for different sensor messages. In the current version the only message type supported is ULocationSystem::Messages::LocationMessageV3-Sensor (i.e. a location message from a sensor). 
                                        logging_server_stats: cell received message_counts
                                        Trace option ‘tftp_report’ 
                                        This option gives a report of the TFTP server embedded within the boot server. It has a single message format: 
                                        boot_server: XFERS ok/failed: ok / failed CONNS lwm/curr/hwm: lwm / curr / hwm RRQ drpd: drpd LOSS_INDICATORS rrq_dup/retries/ack_old/ack_fut: rrq_dup / retries / ack_old / ack_fut
                                        XFERS ok/failed: running total of counts of transfers which successfully completed or failed. 
                                        CONNS lwm/curr/hwm: the low-water-mark, current and high-water-mark for the number of active connections. By default the boot server has a maximum of 32 concurrent connections. The lwm and hwm counts are measured since the previous tftp_report message. 
                                        RRQ drpd: the number of file transfer requests dropped due to reaching the limit on concurrent connections. 
                                        LOSS_INDICATORS rrq_dup/retries/ack_old/ack_fut: various statistics that might indicate lost packets: rrq_dup = duplicate file requests, retries = number of retried server sends, ack_old = number of stale acknowledgement packets, ack_fut = number of extremely old acknowledgement packets. 
                                        Location system information messages disabled by default 
                                        Trace option ‘ls_upstream_info’ 
                                        This option traces the timing cable topology discovery process. The message formats are: 
                                        ls_upstream_info: cell_ got upstream_info.upstream_mac_ port upstream_info.upstream_port_ -> upstream_info.mac_(found downstream sensor ? . : (did not find downstream sensor))
                                        ls_upstream_info: cell_ got upstream_info.upstream_mac_ port upstream_info.upstream_port_ -> upstream_info.mac_(found upstream sensor ? . : (did not find upstream sensor))
                                        ls_upstream_info: cell_ got upstream_info.upstream_mac_ port upstream_info.upstream_port_ -> upstream_info.mac_(update needed ? . : (skipping server update))
                                        ls_upstream_info: parameter_name changed for downstream_mac to trace_value
                                        ls_upstream_info: Reported parameter_name changed for downstream_mac to trace_value
                                        Trace option ‘ls_sink_tag_data’ 
                                        This option traces the receipt of telemetry data from tags.  It has a single message format: 
                                        ls_sink_tag_data: Location sink for cell cell_ received tag data for msg.tag_id_ at msg.time_ with values TagDataPrinter(msg.values_)
                                        Trace option ‘tftp_info’ 
                                        This option traces the transfer of boot files using TFTP. It emits about five messages per transfer, and has the following formats: 
                                        tftp_info: boot_server: creating connection for client_address requesting filename with blocksize blocksize. 
                                        tftp_info: boot_server: sending OACK for client_address requesting filename with blocksize blocksize. 
                                        tftp_info: boot_server: connection for client_address (requested filename) transitioning to state WAITING_FOR_OACK_ACK. 
                                        tftp_info: boot_server: connection for client_address (requested filename) transitioning to state WAITING_FOR_DATA_ACK. 
                                        tftp_info: boot_server: destroying connection for client_address (requested filename) as sending OACK exceeded maximum retries. 
                                        tftp_info: boot_server: destroying connection for client_address (requested filename) as sending DATA exceeded maximum retries. 
                                        tftp_info: boot_server: destroying connection for client_address (requested filename) as error packet received. 
                                        tftp_info: boot_server: destroying connection for client_address (requested filename) as transfer has completed. 
                                        tftp_info: boot_server: destroying old connection for client_address (requested filename) as client has new request. 
                                        tftp_info: boot_server: destroying connection for client_address (requested filename) as server unable to get file data. 
                                        Sensor information messages enabled by default 
                                        Trace option ‘sensor_init’ 
                                        This option traces sensor initialization.  The message formats are: 
                                        sensor_init: Components OK, will request config from address (our protocol address is address ) 
                                        sensor_init: Config Manager OK 
                                        sensor_init: Configuration received OK 
                                        sensor_init: Detected receiver type receiver_type
                                        sensor_init: DSP config OK 
                                        sensor_init: DSP ready, waiting for time sync 
                                        sensor_init: DSP time sync OK 
                                        sensor_init: DSP-controlled hardware OK 
                                        sensor_init: GPP-side IPC OK 
                                        sensor_init: Initial IPC OK 
                                        sensor_init: Initialisation complete 
                                        sensor_init: IPC Loop OK 
                                        sensor_init: LEDs, Resetter OK 
                                        sensor_init: Opening sensor routing channel 
                                        sensor_init: Opening UWB channel 
                                        sensor_init: Sending config to DSP 
                                        sensor_init: Time synchronisation OK 
                                        sensor_init: Waiting for DSP hardware initialisation 
                                        sensor_init: Waiting for DSP to be ready 
                                        sensor_init: Watchdog OK 
                                        Trace option ‘sensor_info’ 
                                        This option traces various sensor behaviors.  Normal message formats are: 
                                        sensor_info: Clearing local CNC as it is invalid. 
                                        sensor_info: Requested firmware upgrade not necessary: version flashed_firmware_version_ is already flashed 
                                        sensor_info: Requested software upgrade not necessary: version flashed_kernel_version_ / flashed_fs_version_ is already flashed 
                                        sensor_info: Successfully re-assigned MAC from settings_.instruction_.old_mac_ to settings_.instruction_.new_mac_ . Will now reboot. 
                                        sensor_info: timing is stable 
                                        sensor_info: Updating CNC status from remote_cnc_state.status_ to local_cnc_status . 
                                        sensor_info: Updating local CNC from local_cnc to requested remote_cnc_state.cnc_ . 
                                        sensor_info: Upgrading firmware from flashed_firmware_version_ to desired_version successful, will now reboot. 
                                        sensor_info: Upgrading firmware from flashed_firmware_version_ to desired_version 
                                        sensor_info: Upgrading flashed software from flashed_kernel_version_ / flashed_fs_version_ to desired_kernel / desired_fs successful, will now reboot. 
                                        sensor_info: Upgrading flashed software from flashed_kernel_version_ / flashed_fs_version_ to desired_kernel / desired_fs
                                        Message formats that probably indicate problems are: 
                                        sensor_info: timing is UNSTABLE  
                                        sensor_info: DSP health timeout, resetting sensor 
                                        Trace option ‘sensor_warning’ 
                                        This option traces is used to deliver non-serious warnings about time synchronization.  If network delays are very high, then the network-based time synchronization protocol will lose accuracy.  This is not a problem in this version of the software because a sensor doesn’t use timestamps from other sensors as part of its location protocol, but it is included in case we wish to use timestamps in this way in future versions.  Normal message formats are: 
                                        sensor_warning: Time synchronisation: estimated network delay is value . 
                                        Sensor fatal error messages 
                                        These messages are sent by a sensor in response to an unrecoverable error; the sensor will then reboot. Message formats are: 
                                        fatal: >1 AD9783 instance 
                                        fatal: >1 AMChannelReference instance 
                                        fatal: >1 CCxx10 instance 
                                        fatal: >1 ClockGeneration instance 
                                        fatal: >1 FPGA instance 
                                        fatal: >1 hamming error but decoded nibble not 255. 
                                        fatal: >2 ADF4002 instances 
                                        fatal: >2 ADT7302 instances 
                                        fatal: AD9783 BIST failed (data1 = ad9783_result ) 
                                        fatal: AD9783 initialisation timeout (data1 = reg ) 
                                        fatal: AD9783 SH calibration failed (data1 = ad9783_result ) 
                                        fatal: AD9783 SH calibration outside normal range (data1 = ad9783_result , data2 = settings_.sh_calibration_max_ x 1000 + settings_.sh_calibration_min_ ) 
                                        fatal: Assert CNC status failed 
                                        fatal: Assert EEPROM info failed: query processor EEPROM failure 
                                        fatal: Assert EEPROM info failed: query receiver EEPROM failure 
                                        fatal: Assert EEPROM info failed: remote operation error 
                                        fatal: Boot file CRC error. (data1 = calculated_crc , data2 = expected_crc ) 
                                        fatal: CC2510 bad chip ID 
                                        fatal: CC2510 version error 
                                        fatal: CCxx10 SPI xfer size too big (data1 = size_in_16_bit_words ) 
                                        fatal: CCxx10: bad chip id (data1 = chip_id_ ) 
                                        fatal: CCxx10: unknown chip id (data1 = chip_id_ ) 
                                        fatal: CCxx10: verification error 
                                        fatal: Clock count assertion (data1 = CLK_countspms() ) 
                                        fatal: Config component registration too late 
                                        fatal: Config establish timeout. Sensor will now reboot. 
                                        fatal: Config registration request failed (server at config_server_address ) response: incompatible configuration request. Sensor will now reboot. 
                                        fatal: Config registration request failed (server at config_server_address ) response: MAC mac() is not known. Sensor will now reboot. 
                                        fatal: Config registration request failed (server at config_server_address ) unable to read response (error invoke_result->get_error() ). Sensor will now reboot. 
                                        fatal: Config registration request failed (server at config_server_address ) unknown response op_result . Sensor will now reboot. 
                                        fatal: Config registration request failed (server at config_server_address ). Sensor will now reboot. 
                                        fatal: data pipeline select fail (data1 = result ) 
                                        fatal: EDMA3 initialise failed 
                                        fatal: emergency 
                                        fatal: error result reading active firmware page 
                                        fatal: Error committing active firmware page (data1 = eeprom_result ) 
                                        fatal: Error detecting active firmware page (data1 = spi_result.first , data2 = spi_result.second ) 
                                        fatal: Error writing active firmware page (data1 = eeprom_result ) 
                                        fatal: Failed firmware upgrade: downloaded kernel size mismatch, expected available_length but file is firmware_buffer.written_size() . Sensor will now reboot. 
                                        fatal: Failed software upgrade: downloaded filesystem size mismatch, expected available_fs_size but file is fs_buffer.written_size() . Sensor will not reboot. 
                                        fatal: Failed software upgrade: downloaded kernel size mismatch, expected available_kernel_size but file is kernel_buffer.written_size() . Sensor will now reboot.
                                        fatal: Failed to allocate IPCCheck message 
                                        fatal: Failed to assert name CRC (result= eeprom_result ) 
                                        fatal: Failed to assert name length (result= eeprom_result ) 
                                        fatal: Failed to assert name version (result= eeprom_result ) 
                                        fatal: Failed to assert firmware page (data1 = eeprom_result ) 
                                        fatal: failed to attach DSP: (data1 = status ) 
                                        fatal: Failed to commit flashed software details to EEPROM (data1 = eeprom_result ) 
                                        fatal: Failed to commit phase 1 to EEPROM (data1 = eeprom_result )
                                        fatal: Failed to commit phase 2 to EEPROM (data1 = eeprom_result )
                                        fatal: Failed to download file  filename  from boot_server_address for operation upgrade. Sensor will now reboot. 
                                        fatal: failed to load DSP: (data1 = status ) 
                                        fatal: Failed to retrieve boot configuration from boot_config_address for operation upgrade. Sensor will now reboot. 
                                        fatal: failed to setup DSP: (data1 = status ) 
                                        fatal: failed to start DSP: (data1 = status ) 
                                        fatal: Failed to switch active firmware page. (data1 = spi_result.first , data2 = spi_result.second ) 
                                        fatal: Failed to unset firmware page (data1 = eeprom_result ) 
                                        fatal: Failed to unset fs version (data1 = eeprom_result ) 
                                        fatal: Failed to unset kernel version (data1 = eeprom_result ) 
                                        fatal: Failed to verify written firmware CRC. (data1 = spi_result.first , data2 = spi_result.second ) 
                                        fatal: Failed to verify written fs CRC. (data1 = spi_result.first , data2 = spi_result.second ) 
                                        fatal: Failed to verify written kernel CRC. (data1 = spi_result.first , data2 = spi_result.second ) 
                                        fatal: Failed to write firmware upgrade. (data1 = spi_result.first , data2 = spi_result.second ) 
                                        fatal: Failed to write fs upgrade. (data1 = spi_result.first , data2 = spi_result.second ) 
                                        fatal: Failed to write kernel upgrade. (data1 = spi_result.first , data2 = spi_result.second ) 
                                        fatal: fatal log init 1 
                                        fatal: fatal log init 2 
                                        fatal: fatal log init 3 
                                        fatal: fatal log init 4 
                                        fatal: fatal log init 5 
                                        fatal: Filesystem CRC mismatch. (data1 = spi_crc , data2 = available_fs_crc ) 
                                        fatal: Firmware CRC mismatch. (data1 = spi_crc , data2 = available_crc ) 
                                        fatal: Firmware version mismatch: intended version is desired_version , but server at boot_server_address reports available version is available_version . Sensor will now reboot. 
                                        fatal: FPGA INIT_B ready timeout 
                                        fatal: FPGA initialise failed 
                                        fatal: FPGA MCB error (data1 = (ones_cnt_rxbuf_p_->subsequent_reset_flag_ 9) | (ones_cnt_rxbuf_p_->mcb_calibration_done_ 8) | (ones_cnt_rxbuf_p_->p2_mcb_rd_error_ 7) | (ones_cnt_rxbuf_p_->p3_mcb_rd_error_ 6) | (ones_cnt_rxbuf_p_->p4_mcb_wr_error_ 5) | (ones_cnt_rxbuf_p_->p5_mcb_wr_error_ 4) | (ones_cnt_rxbuf_p_->p2_mcb_rd_overflow_ 3) | (ones_cnt_rxbuf_p_>p3_mcb_rd_overflow_ 2) | (ones_cnt_rxbuf_p_->p4_mcb_wr_underrun_ 1) | ones_cnt_rxbuf_p_->p5_mcb_wr_underrun_ ) 
                                        fatal: FPGA ones counter test pattern error (data1 = test_pattern ) 
                                        fatal: FPGA PLL/DCM unlocked (data1 = 0 ) 
                                        fatal: FPGA PLLs and DCM failed to lock (data1 = 0 ) 
                                        fatal: FPGA programming failed 
                                        fatal: FPGA subsequent reset error (data1 = ones_cnt_rxbuf_p_->subsequent_reset_flag_ ) 
                                        fatal: Illegal config listener address 
                                        fatal: InitStatus alloc failure (data1 = state ) 
                                        fatal: invalid init check 
                                        fatal: IPC add handler check failed (data1 = offset , data2 = msg_max_count_ ) 
                                        fatal: IPC add handler duplication (data1 = (free_message ? 1000 : 0) + offset , data2 = msg_max_count_ ) 
                                        fatal: IPC code sanity check failed (data1 = offset , data2 = msg_max_count_ ) 
                                        fatal: IPC null handler (data1 = offset , data2 = msg_max_count_ ) 
                                        fatal: Kernel CRC mismatch. (data1 = spi_crc , data2 = available_kernel_crc ) 
                                        fatal: MAC assignment completion notification failed 
                                        fatal: No Location System Configuration Server registered. Sensor will now reboot. 
                                        fatal: PRD assertion (data1 = CLK_getprd() ) 
                                        fatal: Processor Task: task_loop exited (data1 = result ) 
                                        fatal: Receiver PLL unlocked (data1 = 0 ) 
                                        fatal: sample proc not configured 
                                        fatal: Sample Processor: coarse clock overflow (data1 = protocol_data_packet.first_pulse_clock_count_ , data2 = protocol_data_packet.first_pulse_ppe_number_ ) 
                                        fatal: Sanity checks failed. 
                                        fatal: Software version mismatch: intended version is desired_kernel / desired_fs , but server at boot_server_address reports available version is available_kernel_version / available_fs_version . Sensor will now reboot. 
                                        fatal: SPI CRC failed (data1 = 0 ) 
                                        fatal: SPI CRC failed (data1 = 1 ) 
                                        fatal: SPI CRC failed (data1 = 2 ) 
                                        fatal: SPI CRC failed (data1 = 3 ) 
                                        fatal: SPI create channel failed 
                                        fatal: SPI xfer failed (data1 = device , data2 = length ) 
                                        fatal: Timesync alloc error 1 
                                        fatal: Timesync alloc error 2 
                                        fatal: TimeSync info alloc failed 
                                        fatal: TimeSync init alloc failed 
                                        fatal: Timesync latency error 
                                        fatal: unable to cache network configuration from EEPROM 
                                        fatal: unable to cache Processor EEPROM values before re-assigning MAC. 
                                        fatal: unable to cache processor EEPROM values: result
                                        fatal: unable to cache receiver EEPROM values: result 
                                        fatal: unable to commit cleared CNC to EEPROM. Error result . 
                                        fatal: unable to commit CNC changes to EEPROM. Error result . 
                                        fatal: Unable to comprehend boot configuration (data1 = source.get_error() , data2 = buffer.written_size() ) 
                                        fatal: unable to detect flashed firmware version (data1 = result , data2 = firmware_page0_active_ ? 0 : 1 ) 
                                        fatal: unable to detect flashed fs version (data1 = result ) 
                                        fatal: unable to detect flashed kernel version (data1 = result ) 
                                        fatal: Unable to perform operation upgrade due to missing boot config server parameter in configuration. Sensor will now reboot. 
                                        fatal: unable to query board identifier from Processor EEPROM 
                                        fatal: unable to query board identifier from Receiver EEPROM 
                                        fatal: unable to re-assign MAC address, error code result . 
                                        fatal: unable to reset gracefully. (data1 = 1 , data2 = result ) 
                                        fatal: unable to reset gracefully. (data1 = 2 , data2 = result ) 
                                        fatal: unable to write CNC (DNS IP # i ) to EEPROM. Error result . 
                                        fatal: unable to write CNC (DNS Suffix # i ) to EEPROM. Error result . 
                                        fatal: unable to write CNC (Gateway IP) to EEPROM. Error result . 
                                        fatal: unable to write CNC (IP) to EEPROM. Error result . 
                                        fatal: unable to write CNC (Search method # i ) to EEPROM. Error result . 
                                        fatal: unable to write CNC (Subnet mask) to EEPROM. Error result . 
                                        fatal: Unexpected FPGA programming result 
                                        fatal: Unknown AM channel threshold method (data1 = settings_.method_ ) 
                                        fatal: Unknown AM channel threshold state (data1 = state_.machine_state_ ) 
                                        fatal: unknown receiver type (data1 = receiver_type ) 
                                        fatal: Unknown timing cable OTW decoder state (data1 = state_ ) 
                                        fatal: Unknown timing cable OTW encoder state (data1 = state_ ) 
                                        fatal: unrecoverable dsp fatal error 
                                        fatal: UPP Ifc Task exited (data1 = result ) 
                                        fatal: UPP initialise failed 
                                        fatal: UPP: error during read (data1 = result ) 
                                        fatal: UPP: invalid packet source (data1 = pusher->protocol_data_packet_.source_ ) 
                                        fatal: urgent handler emergency init 1 
                                        fatal: urgent handler emergency init 2 
                                        fatal: urgent handler not initialised. 
                                        fatal: Writer failed to locate ARM MSGQ reader 
                                        fatal: written results overflow (data1 = loop_state_.written_results_ ) 
                                        Location system low-level debugging messages 
                                        There are many low-level tracing options available whose main purpose is debugging system software operation.  They should not normally be enabled but are included here to give an idea of what could be traced in principle. 
                                        Trace option ‘boot_d’ 
                                        This does extra tracing on the boot protocol. 
                                        boot_d: Adding boot file file version version
                                        boot_d: Sensor mac registering at address.get_name_local
                                        boot_d: Sensor mac: sending filename (bytes bytes ) to address
                                        Trace option ‘ls_sink_liveness_d’ 
                                        This traces the ‘server liveness timeout’ behavior. 
                                        ls_sink_liveness_d: cell is not a location cell 
                                        ls_sink_liveness_d: increasing timeout to minimum allowed (min timeout) for geometry cell (was timeout) 
                                        ls_sink_liveness_d: no logging address associated with cell location cell
                                        ls_sink_liveness_d: parent cell is not a geometry cell for location cell
                                        ls_sink_liveness_d: parent cell not found for location cell 
                                        ls_sink_liveness_d: removing expiry time of expiry for location cell because timeout is now set to zero 
                                        ls_sink_liveness_d: setting expiry time of time for location cell
                                        ls_sink_liveness_d: setting location sink of address for location cell
                                        ls_sink_liveness_d: setting logging server of address for location cell
                                        ls_sink_liveness_d: setting time server of address for location cell
                                        Trace option ‘ls_timing_graph_d’ 
                                        This traces the calculation of timing graphs. 
                                        ls_timing_graph_d: Finished timing graph for root
                                        ls_timing_graph_d: Found route from root to v with delay delay, variance variance
                                        ls_timing_graph_d: Shortest distance from root to sensor is distance
                                        ls_timing_graph_t: Calculated N delays 
                                        ls_timing_graph_t: Calculating delays with N timing root sensors 
                                        ls_timing_graph_t: Delay for sensor is delay (variance variance) 
                                        ls_timing_graph_t: Timing root sensor root
                                        ls_timing_graph_t: Updated delay for sensor to delay (variance variance) 
                                        Trace option ‘ls_timing_delay_checker’ 
                                        This traces server-side solving of sensor orientations and cable delays. 
                                        ls_timing_delay_checker: check_cable_swaps 
                                        ls_timing_delay_checker: check_delays 
                                        ls_timing_delay_checker: check_descriptors 
                                        ls_timing_delay_checker: check_estimated_positions 
                                        ls_timing_delay_checker: check_orientation_result_sensors 
                                        ls_timing_delay_checker: check_orientation_results_invalid 
                                        ls_timing_delay_checker: check_orientation_results_invalidated 
                                        ls_timing_delay_checker: check_orientation_results 
                                        ls_timing_delay_checker: check_orientation_solved 
                                        ls_timing_delay_checker: check_orientations 
                                        ls_timing_delay_checker: check_overrides 
                                        ls_timing_delay_checker: check_sensor_moves 
                                        ls_timing_delay_checker: check_sensor_swaps 
                                        ls_timing_delay_checker: check_timing_result_routes 
                                        ls_timing_delay_checker: check_timing_result_sensors 
                                        ls_timing_delay_checker: check_timing_results_invalid 
                                        ls_timing_delay_checker: check_timing_results_invalidated 
                                        ls_timing_delay_checker: check_timing_results 
                                        ls_timing_delay_checker: check_timing_routes 
                                        ls_timing_delay_checker: check_timing_solved 
                                        ls_timing_delay_checker: check_valid_flags 
                                        ls_timing_delay_checker: Starting timing delay checker 
                                        ls_timing_delay_checker: sync_delays 
                                        ls_timing_delay_checker: sync_installation_properties 
                                        ls_timing_delay_checker: sync_positions 
                                        ls_timing_delay_checker: sync_valid_flags 
                                        Trace option ‘ls_referential_integrity’ 
                                        This traces the object referential integrity checker. 
                                        ls_referential_integrity: Pruning all parameters that are not in a set of N objects 
                                        ls_referential_integrity: Pruning all sensor-group pairs that are not in a set of N objects 
                                        ls_referential_integrity: Pruning parameters from a set of N objects 
                                        ls_referential_integrity: Pruning sensor-group pairs from a set of N objects 
                                        ls_referential_integrity: Removing parameter for object
                                        ls_referential_integrity: Removing sensor-group pair sensor / group
                                        ls_referential_integrity: Starting location system referential integrity checker 
                                        Trace option ‘ls_child_has_timing_issue_checker 
                                        This traces computation of the ChildHasTimingIssue flag. 
                                        ls_child_has_timing_issue_checker: asserting flag for mac value
                                        ls_child_has_timing_issue_checker: on_current_status_changed(sensor, status) 
                                        ls_child_has_timing_issue_checker: on_current_status_removed(sensor) 
                                        ls_child_has_timing_issue_checker: on_location_cell_changed(sensor, location cell) 
                                        ls_child_has_timing_issue_checker: on_location_cell_removed(sensor) 
                                        ls_child_has_timing_issue_checker: on_upstream_sensor_changed(parent, child) 
                                        ls_child_has_timing_issue_checker: on_upstream_sensor_removed(parent, child) 
                                        ls_child_has_timing_issue_checker: Sensor/Location Cell descriptor not found 
                                        ls_child_has_timing_issue_checker: Sensor/Status/Error Flags descriptor not found 
                                        Trace option ‘tftp_report_d’ 
                                        This option contains all the data in the tftp_report (which is enabled by default) and some additional information for debugging. It has one format: 
                                        tftp_report_d: boot_server: for each statistic statistic_name: count/current state
                                        Configuration distribution 
                                        There are several distinct trace options for tracing the configuration distribution protocol. 
                                        N.B. The config distribution server checks the value of the platform_monitor variable approximately every minute, and updates what trace streams are enabled. This means that the config distribution servers do not need to be restarted to change which trace streams are enabled. Additionally, the config distribution streams (i.e. streams starting with ‘ls_cfgdist’) all output the server’s cell at the start of the message. 
                                        ls_cfgdist_actions: execute failed, but no state for action
                                        ls_cfgdist_actions: execute failed, but old session for ( old_session / new_session ) action
                                        ls_cfgdist_actions: execute failed, will retry for action
                                        ls_cfgdist_actions: execute successful for action 
                                        ls_cfgdist_actions: execute successful, but no state for action
                                        ls_cfgdist_actions: execute successful, but old session ( old_session / new_session ) for action
                                        ls_cfgdist_interests: operation : changed reqs/sgrps/ns/ds/locs/geoms/macs reqs/sgrps/ns/ds/locs/geoms/macs  
                                        ls_cfgdist_interests_d: mac_count MACs interested in descriptor obj : value
                                        ls_cfgdist_interests_d: Descriptor changed: descriptor
                                        ls_cfgdist_interests_d: getting establish for mac . 
                                        ls_cfgdist_interests_d: handling namespace_count changed namespaces and descriptor_count changed descriptors. 
                                        ls_cfgdist_interests_d: handling changed requests for mac_count macs. 
                                        ls_cfgdist_interests_d: handling changed sensor groups for changed_sensors_count sensors, changed_groups_count groups. 
                                        ls_cfgdist_interests_d: MAC requests don’t match group group : differences
                                        ls_cfgdist_interests_d: MAC requests match group group
                                        ls_cfgdist_interests_d: MACHasRequest changed for mac
                                        ls_cfgdist_interests_d: Namespace updated: namespace
                                        ls_cfgdist_interests_d: No MACs interested in descriptor obj
                                        ls_cfgdist_interests_d: on_commit 
                                        ls_cfgdist_interests_d: on_establish 
                                        ls_cfgdist_interests_d: on_macs_changed 
                                        ls_cfgdist_interests_d: reload request for mac : created new group new_mac_group with request_count requests (previous group: old_mac_group ). 
                                        ls_cfgdist_interests_d: reload request for mac : re-using group new_mac_group (previous group: old_mac_group ). 
                                        ls_cfgdist_interests_d: reload request: mac mac has no request, removed from mac group group . New group size: new_size . 
                                        ls_cfgdist_interests_d: Sensor geometry cell changed: sensor sensor
                                        ls_cfgdist_interests_d: Sensor location cell changed: sensor sensor
                                        ls_cfgdist_interests_d: SensorHasMAC changed for mac
                                        ls_cfgdist_interests_d: SensorInGroup change for sensor sensor group group
                                        ls_cfgdist_interests_d: unable to find group interests for mac (group= group ). 
                                        ls_cfgdist_interests_d: unable to find mac group for mac . 
                                        ls_cfgdist_macs: operation [continuation] : #changed_macs= changed_macs_count #changed_sensors= changed_sensors_count #added= added_macs_count #removed= removed_macs_count #callbacks= callbacks_count added= added_macs_set removed= removed_macs_set 
                                        ls_cfgdist_state: operation : macs_with_changed_interests= changed_macs_count added_macs= added_macs_count removed_macs= removed_macs_count changed_params= changed_params_count removed_params= removed_params_count actions est/upd= establish_action_count / update_action_count
                                        ls_cfgdist_state_d: new state for mac resetting last service time 
                                        ls_cfgdist_state_d: Parameter param removed for object: macs_count MACs interested 
                                        ls_cfgdist_state_d: Parameter param changed for object: macs_count MACs interested 
                                        ls_cfgdist_state_dd: on_commit: deleting changes for mac as no request found. 
                                        ls_cfgdist_state_dd: on_commit: ignoring changes for mac as no management state. 
                                        ls_cfgdist_state_dd: on_commit: pushing update action for mac , with updated_parameters_count updates, removed_parameters_count removals. 
                                        ls_cfg_server_cell_checker: checking cells: cell extents [not] changed cell config [not] changed Sensor/Location Cell rows to check: sensor_loc_cell_changed_count Sensor/Geometry Cell rows to check: sensor_geom_cell_changed_count Sensor/Status/Error Flags rows to check: sensor_error_flags_changed_count Location Cell/Named rows to check: loc_cell_named_changed_count Geometry Cell/Named rows to check: geom_cell_named_changed_count
                                        ls_cfg_server_cell_checker_d: cell named changed 
                                        ls_cfg_server_cell_checker_d: sensor error flags changed 
                                        ls_cfg_server_cell_checker_d: sensor geometry cell changed 
                                        ls_cfg_server_cell_checker_d: sensor location cell changed 
                                        ls_cfg_server_cell_checker_d: sensor position changed 
                                        ls_cfg_server_cell_checker_d: asserting required_cell for sensor as required_cell_static_type
                                        ls_cfg_server_cell_checker_d: cell config changed 
                                        ls_cfg_server_cell_checker_d: cell extents changed 
                                        ls_cfg_server_cell_checker_d: checking cells 
                                        ls_cfg_server_cell_checker_d: deleting required_cell_static_type for sensor
                                        ls_cfg_server_timing_root_d: adding sensor – sensor
                                        ls_cfg_server_timing_root_d: adding sensor – upstream_sensor 
                                        ls_cfg_server_timing_root_d: Build sensor upstream map 
                                        ls_cfg_server_timing_root_d: Calculating timing roots 
                                        ls_cfg_server_timing_root_d: considering sensor
                                        ls_cfg_server_timing_root_d: followed timing tree but found no acting TS, giving up 
                                        ls_cfg_server_timing_root_d: upstream sensor it->second is acting TS 
                                        ls_cfg_server_timing_root_d: upstream sensor it->second is not acting TS 
                                         ls_config_server_reg_debug: SensorRegistrationServer::execute: (register_sensor) result= (int)result
                                        ls_config_server_reg_debug: SensorRegistrationServer::execute: (unknown op= op ) 
                                        ls_config_server_reg_debug: SensorRegistrationServer::execute: assert_eeprom_values( EEPROMValuesPrinter(processor_values) , EEPROMValuesPrinter(receiver_values) ). 
                                        ls_config_server_reg_debug: SensorRegistrationServer::execute: enter 
                                        ls_config_server_reg_debug: SensorRegistrationServer::execute: mac_assignment_complete( instruction.old_mac_ -> instruction.new_mac_ processor instruction.processor_id_.manufacturer_info1_ / instruction.processor_id_.manufacturer_info2_ / instruction.processor_id_.manufacturer_info3_ receiver instruction.receiver_id_.manufacturer_info1_ / instruction.receiver_id_.manufacturer_info2_ / instruction.receiver_id_.manufacturer_info3_ ). 
                                        ls_config_server_reg_debug: SensorRegistrationServer::execute: request.get_error()= request.get_error() 
                                        ls_config_server_reg_debug: SensorRegistrationServer::execute: set_cnc_status( mac , cnc_seq , valid ? true : false ) 
                                        Sensor low-level debugging messages 
                                        There are several low-level tracing options available whose main purpose is debugging sensor operation.  They should not normally be enabled but are included here to give an idea of what could be traced in principle. 
                                        Trace option ‘sensor_cnc’ 
                                        This is used to trace the custom network configuration protocol. 
                                        sensor_cnc: config_client_log: value
                                        sensor_cnc: Ignoring invalid remote CNC = remote_cnc_state.cnc_ using local = local_cnc
                                        sensor_cnc: Local CNC == Remote CNC = remote_cnc_state.cnc_ . 
                                        sensor_cnc: Local CNC == Remote CNC == empty.  
                                        Trace option ‘sensor_config’ 
                                        This is used to trace the configuration protocol. 
                                        sensor_config: change_message: changed= changed_params.size() , components= components.size()
                                        sensor_config: establish_message: params= message.parameters_.size() , components= component_properties_.size() , notifier_comps= notifier_components.size() 
                                        sensor_config: establish_message: prefix= message.prefix_.prefix_ , our_prefix= prefix_ , request.get_error()= request.get_error()
                                        sensor_config: notifier: components= components.size()
                                        sensor_config: unknown_message: request.get_error()= request.get_error() , message_code= message_code
                                        sensor_config: update_message: prefix= message.prefix_.prefix_ , our_prefix= prefix_ , request.get_error()= request.get_error() , updated= message.updated_parameters_.size() , removed= message.removed_parameters_.size()
                                        Trace option ‘sensor_sw’ 
                                        This is used to trace the firmware and software flash update process. 
                                        sensor_sw: Flashed firmware/kernel/fs: flashed_firmware_version_ / flashed_kernel_version_ / flashed_fs_version_
                                        sensor_sw: No firmware upgrade requested.
                                        sensor_sw: No software upgrade requested. 
                                        sensor_sw: Storing filesystem details in EEPROM (version/size/crc): available_fs_version / available_fs_size / available_fs_crc 
                                        sensor_sw: Storing kernel details in EEPROM (version/size/crc): available_kernel_version / available_kernel_size / available_kernel_crc 
                                        sensor_sw: Verifying filesystem CRC from SPI flash
                                        sensor_sw: Verifying kernel CRC from SPI flash
                                        sensor_sw: Writing filesystem to SPI flash
                                        sensor_sw: Writing kernel to SPI flash 
                                        Trace option ‘tftp_sender’ 
                                        This option traces the TFTP requests that the ARM makes to download new firmware or software to write into flash.
                                        tftp_sender: Requesting filename from address max_attempts send_attempts timeout_period_ms timeout_in_ms adaptive_timeout adaptive_timeout
                                        tftp_sender: Request for filename from address has failed, received block_count blocks.
                                        tftp_sender: Request for filename from address has completed.  
                                        Location platform warning messages 
                                        Some important warning messages are provided by the underlying location platform libraries and are common to all Ubisense services, including DIMENSION4 services. 
                                        Thread scheduling delays 
                                        These events will be reported if a process detects that it is not being scheduled promptly.  For example, if it requests a sleep of a certain length and is in fact woken up some time after the sleep time has expired, then this may cause a warning if the delay in waking the process up is too large.
                                        warning: slow thread scheduling in last interval s; count events; mean mean_delay ms; max max_delay ms at time_of_max_delay
                                        Disk write latency 
                                        Disk write latencies are reported if a process detects that the write operation took too long to complete. 
                                        warning: immediate disk write latency report for ‘file_name’: detected latency of latency_ms milliseconds doing operation (handle: file_handle ).
                                        warning: periodic disk write latency report for ‘file_name’: highest latency was stats_.max_interval_latency_ms milliseconds doing max_interval_latency_operation in the last interval seconds (handle: file_handle ).